Before devices can communicate and share resources with each other in a modern distributed computing environment, each remote terminal or client, must have a reference identifier for the target device (printer, mass storage device, telephony interface, etc.). The reference identifier essentially contains sufficient addressing information to direct the client to the target device. In essence, the other devices on the distributed network must have access to code, device drivers, and interface port information for any other device that joins the network. In one conventional distributed system, services are logically grouped in a distributed Jini™ system, referred to as a “Djinn” as described in copending U.S. patent application Ser. No. 09/044,931, now U.S. Pat. No. 6,185,611 issued Feb. 6, 2001, entitled “Dynamic Lookup Service in a Distributed System,” assigned to a common assignee, which has been previously incorporated by reference. A “service” refers to a resource, data, or functionality that can be accessed by a user, program, device, or another service and that can be computational, storage related, communication related, or helpful in providing access to another user. Examples of services provided as part of a Djinn include devices, such as printers, displays, and disks; software, such as applications or utilities; information, such as databases and files; and users of the system. When joining a Djinn, the user or device adds zero or more services to the Djinn and may access, subject to security constraints, any one of the services it contains. Thus, devices and users federate into a Djinn to share access to its services. The services of the Djinn appear programmatically as objects of the Java™ programming environment, which may include other objects, software components written in different programming languages, or hardware devices.
The goal of any well-behaved Jini service, implemented within the bounds defined by the Jini technology programming model, is to advertise the service it provides in at least one Jini Lookup service. Such a process is known as registering with, or joining the lookup. To demonstrate this so-called good behavior, a service complies with both the multicast discovery protocol (group discovery) and the unicast discovery protocol (locator discovery) in order to discover the lookup services it is interested in joining. In brief, a service wishing to register in a lookup service first sends a multicast message on the network, which is responded to by a discovery server. Each discovery server receiving the message responds with a reference to an associated lookup service. After receiving this response, the service may register itself in the lookup service by sending a unicast message to the lookup service. Once registered, the service receives a lease object from the lookup service indicating that that service will be registered for a particular period of time. It is the responsibility of the service to renew this lease before it expires, otherwise its registration will be deleted. Leases are further described in co-pending U.S. patent application Ser. No. 09/044,923, now U.S. Pat. No. 6,753,350 issued Jul. 17, 2001, entitled “Method and System for Leasing Storage,” assigned to a common assignee, which has been previously incorporated by reference.
In order to efficiently utilize existing memory space and to conserve processing power, a service may be implemented as an activatable object. That is, the service may be selectively activated (stored in memory) or deactivated (removed from memory), depending upon whether it is currently being used by another network service. Both the service and the lookup service are activatable objects, thus posing a problem. Specifically, for a service to register with a lookup service, both the service and the lookup service must be active and operational, respectively. If not, the service either will not be looking for the lookup service because it is inactive, or it will not be able to find the lookup service because the lookup service has crashed. Based on these problems, it is desirable to improve the process and apparatus for performing lookup service registration.